#include <iostream>
#include <climits>
using namespace std;

void maxSumSubsequence(int arr[], int n) {
	int max_sum = INT_MIN;  // 最大子序列和的初始值设置为负无穷大
	int current_sum = 0;   // 当前子序列和的初始值为0
	
	int start_pos = 0;     // 最大子序列的起始位置
	int end_pos = 0;       // 最大子序列的结束位置
	int current_start = 1; // 当前子序列的起始位置
	
	for (int i = 0; i < n; i++) {
		current_sum += arr[i];  // 将当前元素加到当前子序列和中
		
		if (current_sum > max_sum) { // 如果当前子序列和大于最大子序列和
			max_sum = current_sum;  // 更新最大子序列和
			start_pos = current_start;  // 更新最大子序列的起始位置
			end_pos = i + 1;  // 更新最大子序列的结束位置
		}
		
		if (current_sum <= 0) {  // 如果当前子序列和小于等于0
			current_sum = 0;  // 将当前子序列和重置为0
			current_start = i + 2;  // 更新当前子序列的起始位置为下一个位置
		}
	}
	
	cout << max_sum << " " << start_pos << " " << end_pos << endl;  // 输出最大子序列和、起始位置和结束位置
}

int main() {
	int T;
	cin >> T;  // 输入测试用例的数量
	
	for (int i = 0; i < T; i++) {
		int N;
		cin >> N;  // 输入序列的长度
		
		int arr[N];
		for (int j = 0; j < N; j++) {
			cin >> arr[j];  // 输入序列中的元素
		}
		
		cout << "Case " << (i+1) << ":" << endl;  // 输出当前测试用例的标识
		
		maxSumSubsequence(arr, N);  // 调用函数计算最大子序列和
		
		// 输出空行以分隔不同的测试用例
		cout << endl;
	}
	
	return 0;
}
